home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / comm / mail / YAM23src.lha / Source / includes / compiler.h next >
C/C++ Source or Header  |  2001-05-02  |  2KB  |  115 lines

  1. #ifndef _COMPILER_H
  2. #define _COMPILER_H
  3.  
  4. /*
  5. ** first "exceptions"
  6. */
  7.  
  8. #if defined(__SASC)
  9.   #if !defined(_M68060)
  10.     #if !defined(_M68040)
  11.       #if !defined(_M68030) && !defined(_M68020)
  12.          #define __mc68000__
  13.       #else
  14.         #define __mc68020__
  15.       #endif
  16.     #else
  17.       #define __mc68040__
  18.     #endif
  19.   #else
  20.     #define __mc68060__
  21.   #endif
  22.   #if defined(_M68881)
  23.     #define __HAVE_68881__
  24.   #endif
  25. //  #define ASM(arg) arg __asm
  26.  #define ASM __asm
  27. #elif defined(__VBCC__)
  28.   #define REG(reg,arg) __reg(#reg) arg
  29.   #define INLINE static
  30.   #define REGARGS /**/
  31.   #define STDARGS /**/
  32.   #define STACKEXT /**/
  33. #elif defined(__MORPHOS__)
  34.   #define REG(reg,arg) arg
  35.   #define ASM /**/
  36.   #define SAVEDS /**/
  37.   #define STACKEXT /**/
  38.   #define STDARGS /**/
  39.   #define __stdargs
  40.   #define __regargs
  41.   #define __near
  42. #elif defined(__GNUC__)
  43.   #define REG(reg,arg) arg __asm(#reg)
  44.   #define __near
  45.   #define LREG(reg,arg) register REG(reg,arg)
  46.   #define ALIAS(a,b) __asm(".stabs \"_" #a "\",11,0,0,0\n\t.stabs \"_" #b "\",1,0,0,0");
  47. #elif defined(_DCC)
  48.   #define REG(reg,arg) __ ## reg arg
  49.   #define STACKEXT __stkcheck
  50.   #define STDARGS __stkargs
  51.   #define INLINE static
  52. #elif defined(__STORM__)
  53.   #define STDARGS /**/
  54.   #define REGARGS /**/
  55.   #define STACKEXT /**/
  56.   #define REG(reg,arg) arg
  57. #endif
  58. /*
  59. ** then "common" ones
  60. */
  61.  
  62. #if !defined(ASM)
  63. //  #define ASM(arg) arg
  64.  #define ASM
  65. #endif
  66. #if !defined(REG)
  67.   #define REG(reg,arg) register __##reg arg
  68. #endif
  69. #if !defined(LREG)
  70.   #define LREG(reg,arg) register arg
  71. #endif
  72. #if !defined(ALIAS)
  73.   #define ALIAS(a,b)
  74. #endif
  75. #if !defined(CONST)
  76.   #define CONST const
  77. #endif
  78. #if !defined(LOCAL)
  79.   #define LOCAL static
  80. #endif
  81. #if !defined(SAVEDS)
  82.   #define SAVEDS __saveds
  83. #endif
  84. #if !defined(INLINE)
  85.   #define INLINE static __inline
  86. #endif
  87. #if !defined(REGARGS)
  88.   #define REGARGS __regargs
  89. #endif
  90. #if !defined(STDARGS)
  91.   #define STDARGS __stdargs
  92. #endif
  93. #if !defined(STACKEXT)
  94.   #define STACKEXT __stackext
  95. #endif
  96. #if defined(__mc68020__) || defined(__mc68030__) || defined(__mc68040__) || defined(__mc68060__)
  97.   #define PLAIN(x)
  98.   #define REQUIRES_68020(x) ((x & AFF_68020) == 0)
  99. #else
  100.   #define REQUIRES_68020(x) (0)
  101.   #define PLAIN(x) x
  102. #endif
  103.  
  104. /*
  105. ** stacksize definitions
  106. */
  107.  
  108. #ifdef __STORMGCC__
  109.   #define __YAM_STACK __stacksize
  110. #else
  111.   #define __YAM_STACK __stack
  112. #endif
  113.  
  114. #endif /* _COMPILER_H */
  115.